package com.beiming.libra.domain.dto.requestdto;

import java.io.Serializable;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import com.beiming.libra.common.constants.LibraConst;
import com.beiming.libra.common.constants.ValidateMessage;
import com.beiming.libra.common.enums.UserTypeEnum;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 仲裁员&办案秘书账号录入
 */
@ApiModel("仲裁员&办案秘书账号录入")
@Data
public class ArbUserRequestDTO implements Serializable {
  
  /**
   * 用户类型(PEOPLE[个人],COMPANY[企业],SPECIAL[专项用户],SECRETARY[办案秘书],
   * ARBITRATION[仲裁员],FINANCE[财务],LEADER[领导],ADMIN[系统管理员])
   * 
   */
  @ApiModelProperty(value = "用户类型(PEOPLE[个人],COMPANY[企业],SPECIAL[专项用户],SECRETARY[办案秘书], ARBITRATION[仲裁员],FINANCE[财务],LEADER[领导],ADMIN[系统管理员])", required = true)
  @NotNull(message = ValidateMessage.USER_TYPE_NOT_BLANK)
  private UserTypeEnum userType;
  /**
   * 用户名
   */
  @ApiModelProperty(value = "用户名", required = true)
  @NotBlank(message = ValidateMessage.LOGIN_NAME_NOT_BLANK)
  private String loginName;

  /**
   * 手机号
   */
  @ApiModelProperty(value = "手机号", required = true)
  @NotBlank(message = ValidateMessage.MOBILE_PHONE_NOT_BLANK)
  @Pattern(regexp = LibraConst.REGEX_MOBILE_EXACT, message = ValidateMessage.MOBILE_PHONE_INCORRECT)
  private String mobilePhone;

  /**
   * 密码
   */
  @ApiModelProperty(value = "密码", required = true)
  @NotBlank(message = ValidateMessage.PASSWORD_NOT_BLANK)
  private String password;
  
  /**
   * 擅长领域
   */
  @ApiModelProperty(value = "擅长领域")
  private String ability;
  
  /**
   * 真实姓名
   */
  @ApiModelProperty(value = "真实姓名")
  private String actualName;

  /**
   * 服务区域
   */
  @ApiModelProperty(value = "服务区域")
  private String address;

  /**
   * 出生年月日
   */
  @ApiModelProperty(value = "出生年月日")
  private String birth;

  /**
   * 城市
   */
  @ApiModelProperty(value = "城市")
  private String city;

  /**
   * 现住址
   */
  @ApiModelProperty(value = "现住址")
  private String curAddress;

  /**
   * 现住址详细地址
   */
  @ApiModelProperty(value = "现住址详细地址")
  private String curAddressDetail;

  /**
   * 行政区
   */
  @ApiModelProperty(value = "行政区")
  private String district;

  /**
   * 文化程度
   */
  @ApiModelProperty(value = "文化程度")
  private String education;

  /**
   * 邮箱
   */
  @ApiModelProperty(value = "邮箱")
  private String email;

  /**
   * 从业经历
   */
  @ApiModelProperty(value = "从业经历")
  private String experience;

  /**
   * 身份证
   */
  @ApiModelProperty(value = "身份证")
  private String idCard;

  /**
   * 图片：身份证反面
   */
  @ApiModelProperty(value = "图片：身份证反面 ")
  private String imgOther;

  /**
   * 图片:照片
   */
  @ApiModelProperty(value = "图片:照片 ")
  private String imgPhoto;

  /**
   * 图片：身份证正面
   */
  @ApiModelProperty(value = "图片：身份证正面 ")
  private String imgPositive;

  /**
   * 图片：资格证书
   */
  @ApiModelProperty(value = "图片：资格证书 ")
  private String imgQua;

  /**
   * 服务职能
   */
  @ApiModelProperty(value = "服务职能 ")
  private String job;

  /**
   * 开始从业时间
   */
  @ApiModelProperty(value = "开始从业时间 ")
  private String jobstart;

  /**
   * 工作机构
   */
  @ApiModelProperty(value = "工作机构")
  private String mechWork;

  /**
   * 政治面貌
   */
  @ApiModelProperty(value = "政治面貌")
  private String political;

  /**
   * 省份
   */
  @ApiModelProperty(value = "省份")
  private String province;

  /**
   * 资格证书名称
   */
  @ApiModelProperty(value = "资格证书名称")
  private String qualificatName;

  /**
   * 职业
   */
  @ApiModelProperty(value = "职业")
  private String role;

  /**
   * 毕业院校
   */
  @ApiModelProperty(value = "毕业院校")
  private String school;

  /**
   * 性别
   */
  @ApiModelProperty(value = "性别")
  private String sex;

  /**
   * 工作机构详细地址
   */
  @ApiModelProperty(value = "工作机构详细地址")
  private String workAddDeti;

  /**
   * 工作地址
   */
  @ApiModelProperty(value = "工作地址")
  private String workAddress;

  /**
   * 无用字段
   */
  @ApiModelProperty(value = "无用字段")
  private String name;

  /**
   * 执业证号
   */
  @ApiModelProperty(value = "执业证号")
  private String licenseNumber;

}
